/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.desarrollosw2.Categoria;
import mx.its.desarrollosw2.Libro;
import mx.its.dsw2.biblioteca.bl.AutorBlLocal;
import mx.its.dsw2.biblioteca.bl.CategoriaBlLocal;
import mx.its.dsw2.biblioteca.bl.LibroBlLocal;

/**
 *
 * @author sistemas
 */
@ManagedBean
@SessionScoped
public class BookBean {
    @EJB
private CategoriaBlLocal categoriaBl;
private LibroBlLocal libroBl;
private AutorBlLocal autorBl;
private List<Libro> lista;
private List<Categoria> listacategoria;
private Libro book;
private String accion;
private int autorSeleccionado;
private int categoriaSeleccionada;




    /**
     * Creates a new instance of BookBean
     */
    public BookBean() {
    }

    public int getCategoriaSeleccionada() {
        return categoriaSeleccionada;
    }

    public void setCategoriaSeleccionada(int categoriaSeleccionada) {
        this.categoriaSeleccionada = categoriaSeleccionada;
    }

    public int getAutorSeleccionado() {
        return autorSeleccionado;
    }

    public void setAutorSeleccionado(int autorSeleccionado) {
        this.autorSeleccionado = autorSeleccionado;
    }

    public List<Categoria> getListacategoria() {
       listacategoria=categoriaBl.getAll();
        return listacategoria;
    }

    public void setListacategoria(List<Categoria> listacategoria) {
        this.listacategoria = listacategoria;
    }
  
    public Libro getBook() {
        return book;
    }

    public void setBook(Libro book) {
        this.book = book;
    }
    
 public List<Libro> getLista(){
           lista=libroBl.getAll();
           return lista;
       }

 
 //----------------------Acciones----------------------------
 public String procesarSeleccion(){
     book.setIdAutor(autorBl.findById(autorSeleccionado));
     return "LibroConfirmar"; 
 }
 public String procesarAccion(){
    if(accion.equalsIgnoreCase("Nuevo")){
        System.out.println("gggggggfff"+listacategoria.toString());
        libroBl.register(book, listacategoria);
        
    }else{
        if(accion.equalsIgnoreCase("Editar")){
            libroBl.modify(book, listacategoria);
//             asi deve de quedar   libroBl.modify(book,listacategoria);
        }else{
            if(accion.equalsIgnoreCase("Eliminar")){
                libroBl.delete(book);
            }
        }
    } 

    return "LibrosLista";
 }

 
 public void prepararNuevo(ActionEvent evt){
    listacategoria=new ArrayList<Categoria>();
     accion="Nuevo";
    book=new Libro();
} 

public void prepararEditar(ActionEvent evt){
    // marcar las lineas 2 y 3  para que funcione la parte de editar los registros de el libro seleccionado en LibrosLista
    accion="Editar";
    System.out.println(evt.getComponent().getClientId());
    int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
//    listacategoria=categoriaBl.getListByBook(book, listacategoria);
    listacategoria=categoriaBl.getListByBook(book);
    book=lista.get(index);
   }

public void prepararEliminar(ActionEvent evt){
    accion="Eliminar";
   System.out.println(evt.getComponent().getClientId());
    int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
    book=lista.get(index);
    
    
}
public void agregarCategoria(ActionEvent evt){
    listacategoria.add(categoriaBl.findById(categoriaSeleccionada));
    
   }

}
